package com.nf.demo.utils;

import org.apache.commons.dbutils.BeanProcessor;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.util.Date;

/**
 * @author lwj
 * @date 2025-02-26
 * @vesion 1.0.0
 */
public class CustomBeanProcessor extends BeanProcessor {
    /**
     * timer.LocalDateTime 转换成 utils.Date 类型
     * @param resultSet 结果集对象
     * @param index 列下标
     * @param propType 转换的类型
     * @return 转换后的类型数据
     */
    protected Object processColumn(ResultSet resultSet, int index, Class<?> propType) throws SQLException {
        // 获取某字段的数据
        Object value = super.processColumn(resultSet,index,propType);

        // 处理 LocalDateTime => Date
        if(value instanceof LocalDateTime localDateTime && propType == Date.class){
            return Date.from(localDateTime.atZone(ZoneId.systemDefault()).toInstant());
        }
        return value;
    }
}
